#include<iostream>
#include<unistd.h>
#include<signal.h>
#include<sys/types.h>
void handler(int num){
    std::cout<<"处理信号"<<std::endl;
}
int main(){
    //对二号信号进行屏蔽
    sigset_t ne;
    sigset_t old;
    sigemptyset(&ne);
    sigemptyset(&old);
    sigaddset(&ne,2);//此时还没有把2号加到内核的block中，只是放到了栈上的ne中了
    sigprocmask(SIG_BLOCK,&ne,&old);//现在加到内核了
    int n=7;
    signal(2,handler);
    while(true){
        n--;
        if(n==0)
        sigprocmask(SIG_SETMASK,&old,nullptr);
        sigset_t pe;
        sigemptyset(&pe);
        sigpending(&pe);
        for(int i=31;i;i--)
        std::cout<<sigismember(&pe,i);
        std::cout<<std::endl;
        sleep(1);
    }

}